package com.lnsf.bookstore.system.schedule.service;


import com.github.pagehelper.PageInfo;
import com.lnsf.bookstore.system.schedule.vo.ScheduleJob;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;

import java.util.List;
import java.util.Map;

/**
 * 定时任务
 *
 * @author lipengjun
 * @email 939961241@qq.com
 * @date 2016年11月28日 上午9:55:32
 */
public interface ScheduleJobService {

    /**
     * 查找任务详情
     * @param name 任务名称
     * @param group 任务分组
     * @return
     */
    public ScheduleJob getJobDetails(String name,String group);


    /**
     * 查询定时任务列表
     */
   PageInfo<ScheduleJob> queryList(ScheduleJob scheduleJob);


    /**
     * 保存定时任务
     */
    boolean add(ScheduleJob scheduleJob);

    /**
     * 更新定时任务
     */
   void update(ScheduleJob scheduleJob) throws SchedulerException, ClassNotFoundException;

    /**
     * 删除任务
     * @param name 任务名
     * @param group 任务组
     */
    public void delete(String name, String group);

    /**
     * 立即执行
     */
    void runNow(String name, String group);

    /**
     * 暂停运行
     */
    void pause(String name, String group);

    /**
     * 恢复运行
     */
    void resume(String name, String group);

    /**
     * 开始所有定时任务。启动调度器
     */
    public void startSchedule();

    /**
     * 关闭调度器
     */
    public void shutdownSchedule();

    /**
     * 是否存在
     * @param name
     * @param group
     * @return
     */
    boolean checkExist(String name, String group);

}
